/*
 * ContextConsumer
 */

package ocp.service;

import ocp.context.Context;

/**
 * Interface de servicio que debe implementar un consumidor de contextos
 * @author Paco Lopez Marmol
 */
public interface ContextConsumer {
    
    /**
     * ocp consulta el id del ContexConsumer
     * @return
     */
    public String getId();
    
    /**
     * ocp nos activa como consumidores de contexto y nos envia la interfaz
     * de acceso al servicio ocp
     * @param cs Interfaz de acceso al servicio ocp
     */
    public void activate(ContextService cs);
    
    /**
     * ocp nos indica que el servicio no esta disponible
     */
    public void deactivate();
    
    /** 
     * Nos notifica de cambios en contextos concretos. Previamente hemos tenido
     * que registrarnos a cambios en ese contexto
     * @param context El contexto que cambio
     */
    public void notifyContextChange(Context context);
    
    /**
     * Nos notifica de que se han creado nuevos contextos.
     * @param context el nuevo contexto creado.
     */
    public void notifyNewContext(Context context);
}
